package com.hjimi.ski.app;

import android.app.Application;
import android.content.Context;
import android.util.Log;

import com.hjimi.ski.bean.InitDeviceBean;
import com.hjimi.ski.config.Constant;
import com.hjimi.ski.config.UrlConfig;
import com.hjimi.ski.iView.InitDeviceIView;
import com.hjimi.ski.presenter.InitDevicePresenter;
import com.hjimi.ski.utils.AppManager;
import com.hjimi.ski.utils.SpUtil;
import com.hjimi.ski.utils.ToastUtils;
import com.hjimi.ski.view.activity.UnBindActivity;
import com.imi.jingdongfang.ImiJingdongfangSDK;

import org.json.JSONObject;
import org.lzh.framework.updatepluginlib.UpdateConfig;
import org.lzh.framework.updatepluginlib.base.UpdateParser;
import org.lzh.framework.updatepluginlib.model.Update;

import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.Reader;

/**
 * Created By 孙岩
 * on 2023/2/1
 */
public class MyApplication extends Application {
    public static MyApplication app;
    //退出
    public AppManager finishManager;
    public static MyApplication getInstance() {
        return app;
    }
    //更新参数
    public  static Update update;


    public static ImiJingdongfangSDK jingdongfangSDK;
    @Override
    public void onCreate() {
        super.onCreate();
        app = this;
        ToastUtils.init(this);

        updateApp();

        jingdongfangSDK = new ImiJingdongfangSDK();
        jingdongfangSDK.Init(this);
    }

    private void updateApp() {
        UpdateConfig.getConfig()
                // 必填：数据更新接口,url与checkEntity两种方式任选一种填写
                //正式
                .setUrl(UrlConfig.getVersion)
                //.setCheckEntity(new CheckEntity().setMethod(HttpMethod.GET).setUrl("http://www.baidu.com"))
                // 必填：用于从数据更新接口获取的数据response中。解析出Update实例。以便框架内部处理
                .setUpdateParser(new UpdateParser() {
                    @Override
                    public Update parse(String response) throws Exception {
                        /* 此处根据上面url或者checkEntity设置的检查更新接口的返回数据response解析出
                         * 一个update对象返回即可。更新启动时框架内部即可根据update对象的数据进行处理
                         */
                        JSONObject object = new JSONObject(response);
                        if(object.isNull("data")){
                            return null;
                        }else{
                            JSONObject obj = new JSONObject(object.getString("data"));
                            update = new Update();
                            // 此apk包的下载地址
                            update.setUpdateUrl(obj.optString("app_link"));
                            // 此apk包的版本号
                            update.setVersionCode(Integer.parseInt(obj.getString("code")));
                            // 此apk包的版本名称
                            update.setVersionName(obj.optString("version"));
                            // 此apk包的更新内容
                            update.setUpdateContent(obj.optString("desc"));
                            // 此apk包是否为强制更新
                            update.setForced(true);
                            // 是否显示忽略此次版本更新按钮
                            update.setIgnore(true);
                            return update;
                        }

                    }
                });

    }
}
